/**
 * 
 */
package com.zq.utils;

import java.io.File;

/**
 *说明:
 *@version v1.0
 * @author zhangqian(mailto:739428054@qq.com)
 *	创建于:2020年4月25日上午10:07:55
 */
public class FileUtil {
	
	/**
	* 功能：获取操作用户当前目录。
	*
	* @return 操作系统用户目录
	*/
	public static File getUserDir() {
		String userDir = System.getProperty("user.dir");
		return new File(userDir);
	}
	
	/**
	* 功能：获取操作系统用户目录。
	*
	* @return 操作系统用户目录
	*/
	public static File getUserHomeDir() {
		String userHomeDir = System.getProperty("user.home");
		return new File(userHomeDir);
	}
	
	/**
	* 功能：获取操作系统临时目录。
	*
	* @return 操作系统临时目录
	*/
	public static File getTmpDir() {
		String tmpDir = System.getProperty("java.io.tmpdir");
		return new File(tmpDir);
	}
	/**
	* 功能：获取一个文件的根目录
	*
	* @return 当前根目录
	*/
	public static File getRoot() {
		return getRoot(new File("/").getAbsoluteFile());
	}
	
	/**
	 * 功能：获取一个文件的根目录
	 * 举例：d:\temp\2020\04\abc.jpg → d:
	 *
	 * @param File file 文件名
	 * @return 该文件的根目录
	 */
	public static File getRoot(File file) {
		return file.getParentFile() == null ? file : getRoot(file.getParentFile());
	}
	

	/**
	* 功能：获取对应单位的文件大小
	* 示例：a.jpg文件原始大小是1275个字节，如果参数单位是k，则返回2K，如果m，则返回0M   
	*
	* @param File file 文件
	* @param FileSizeUnit unit 单位，如K、M、G、T
	* @return 对应单位的文件大小
	*/
	public static long getFileSize(File file, FileSizeUnit unit) {
		long size = file.length();
		long mod = size % unit.getSize();
		size = size / unit.getSize();
		if(mod > 0){
		}
		
		
		return size;
	}
	
	
	
	public enum FileSizeUnit{
		B(1), 							//1byte
		K(1024), 						//K = 1024 * B
		M(1024 * 1024), 				//1M = 1024 * 1024B
		G(1024 * 1024 * 1024), 			//1G = 1024 * 1024 * 1024B
		T(1024 * 1024 * 1024 * 1024); 	//1T = 10224
		
		private long size;
		
		private FileSizeUnit(long size){
			this.size = size;
		}
		
		public long getSize(){
			return this.size;
		}
	}
	
}
